package com.xiaoxing.login.mvp.model.api.service;

import com.xiaoxing.login.mvp.model.entity.FbLoFgin;
import com.xiaoxing.login.mvp.model.entity.Login;
import com.xiaoxing.login.mvp.model.entity.Nearby;
import com.xiaoxing.login.mvp.model.entity.SmsSend;
import com.xiaoxing.login.mvp.model.entity.UpdatePassword;
import com.xiaoxing.login.mvp.model.entity.UpdateUserInfo;
import com.xiaoxing.login.mvp.model.entity.UserCheckphone;
import com.xiaoxing.login.mvp.model.entity.UserRegister;
import com.xiaoxing.login.mvp.model.entity.UserSetpassword;

import io.reactivex.Observable;
import retrofit2.http.GET;
import retrofit2.http.Query;

/**
 * @author 小星 QQ:753940262
 * @class describe
 * @time 2018/7/7 0007 16:50
 */
public interface LoginService {

    /**
     * 登录
     */
//    @GET("http://47.100.103.123/api.php?app_key=woaixuxiaoxing&method=dsc.user.login.get&user_name=fan&password=123456")
    @GET("/api/user/signin")
    Observable<Login> doLogin(@Query("user_name") String user_name, @Query("password") String password);

    /**
     * 验证手机号是否存在
     *
     * @param phone
     * @return
     */
    @GET("/api/userCheckphone.php")
    Observable<UserCheckphone> userCheckphone(@Query("phone") String phone);

    /**
     * 发送短信接口
     *
     * @param user_name
     * @return
     */
//    @GET("/api/aliyun/sms/sms_send.php")
//    Observable<SmsSend> smsSend(@Query("phone") String phone, @Query("code") String code);
    @GET("/api/user/sendCode")
    Observable<SmsSend> smsSend(
            @Query("user_name") String user_name
    );


    @GET("/api/user/updatePassword")
    Observable<UpdatePassword> updatePassword(
            @Query("user_name") String user_name,
            @Query("code") String code,
            @Query("password") String password
    );

    /**
     * 注册接口
     *
     * @param user_name
     * @param password
     * @param password2
     * @param shop_id
     * @return
     */
    @GET("/api/user/signup")
    Observable<UserRegister> userRegister(@Query("user_name") String user_name, @Query("password") String password, @Query("password2") String password2, @Query("shop_id") String shop_id);

    /**
     * @param lat
     * @param lng
     * @return
     */
    @GET("/api/user/nearby")
    Observable<Nearby> nearby(@Query("lat") String lat, @Query("lng") String lng);

    /**
     * 设置新密码
     *
     * @param user_name
     * @param code
     * @param password
     * @return
     */
    @GET("/api/user/updatePassword")
    Observable<UserSetpassword> userSetpassword(@Query("user_name") String user_name, @Query("code") String code, @Query("password") String password);

    @GET("/api/user/fbLogin")
    Observable<FbLoFgin> fbLogin(@Query("facebookId") String facebookId, @Query("name") String name);

    @GET("/api/user/updateUserInfo")
    Observable<UpdateUserInfo> updateUserInfo(
            @Query("access_token") String access_token,
            @Query("nick_name") String nick_name,
            @Query("address") String address,
            @Query("password") String password,
            @Query("email") String email,
            @Query("mobile") String mobile,
            @Query("shop_id") String shop_id
    );


}
